home *** CD-ROM | disk | FTP | other *** search
- Short: gcc-2.5.6 #1 Optimizing C/C++/Objective-C compiler (main)
- Type: dev/gcc
- Uploader: hoehle@inf-wiss.uni-konstanz.de
- Author: phb@colombo.telesys-innov.fr
-
- This directory contains the version 2.5.6 release of the GNU C
- compiler. It includes all of the support for compiling C++ and
- Objective C, including a run-time library for Objective C.
-
- This is still a beta test release, but aside from the Objective C
- run-time, it ought to be close to reliable.
-
- The GNU C compiler is free software. See the file COPYING for copying
- permission.
-
- =======
- WARNING
- =======
-
- This version of Amiga GCC-2.5.6 should be considered as BETA, as GCC itself
- is still BETA since 2.0.
- It has succesfully compiled itself 3 times (up to stage 3) and was used to
- compile some utilities such as perl and C++ library.
-
- Please test it and reports any bugs to:
-
- Philippe BRAND
- Fidonet: Ramses The Amiga Flying BBS 2:320/104.21
- Email: phb@colombo.telesys-innov.fr
-
- =======
- History
- =======
-
- Gcc v2.2.2 port: Markus Wild
- Gcc v2.3.3 port: Markus Wild
- Gcc v2.4.5 port: Philippe Brand ,Lars Hecking, Fred Fish
- Gcc v2.5.0 and up: Philippe Brand, Fred Fish
-
- ==========================
- What's new in this release
- ==========================
-
- -Read FSF NEWS file included.
- -More internal compiler bugs fixed (see ChangeLogs in gcc sources for details),
- a lot for C++ support.
- -Fred Fish seems to have finally found an annoying bug which prevented
- to compile a resident version of GCC, or to compile resident programs. But
- don't try it anyway 'cause there's still lack of library support as for now.
- -Man command now works, this one was my fault (well in fact like others ;-),
- fix done by Tom Haiko.
- -Infoview works also, it was an internal path problem.
- -libamy.a HAS TO BE RENAMED to libamiga.a because new ld won't find libamy.a
- -upgrade to new C++ library v2.5.1.
-
- =======
- Sources
- =======
-
- This archive should contain everything necessary to get you going, it doesn't
- include the sources for ixemul.library (should be available RSN as a different
- distribution, or ask Markus Wild), and it doesn't include full sources to gcc.
- If you're interested in the sources required to rebuild gcc, get the original
- GNU sources (gcc-2.5.6.tar.gz, somewhat 6MB), which should be stored on the
- same ftp site you got this binary distribution from (if they're not, tell the
- manager of that ftp site, as this is a requirement of the GNU Copyright
- LICENSE). Then apply the gcc patch-file in src-patches/, and configure for
- `amigados'. Same thing goes for libg++-2.5.1. If you want (ie. you don't have
- to) get libg++-2.5.1.tar.gz (again, from the same ftp site you got this
- distribution from) and apply the libg++ diff from the src-patches directory,
- then configure for amigados and give it a try. Please note that you should
- have at least 40MB left or your HD and 8MB of memory minimum in order to
- rebuild gcc up to stage3. An accelerated Amiga is welcome, as it took me
- 4,5 hours to generate a single pass. So 3 passes makes 4,5 x 3 = 13,5 hours.
-
- Sources for other tools only included as binaries are available separately
- in self-contained archives (such as for example gnuinfo-920712.lha for
- InfoView).
-
- =====
- Where
- =====
-
- **** GCC 2.2.2, 2.3.3, 2.4.5, 2.5.2, 2.5.3, 2.5.4 & 2.5.6 are available on:
-
- - Aminet sites (wuarchive.wustl.edu and mirrors such as ftp.luth.se)
- in /pub/aminet/dev/gcc
-
- - Ramses The Amiga Flying BBS +33-1-60037015 HST Dual v32 terbo 4800-21600
- +33-1-60037713 SupraFax v32bis 4800-14400
- +33-1-60037716 Tornado v22bis 1200-2400
- in Topic Development, Area Gcc
-
-
- **** GNU source code is available on:
-
- - gnu.prep.ai.mit.edu 18.71.0.38
- in /pub/gnu
-
- - Ramses The Amiga Flying BBS
- in Topic AmigaUnix/Unix/Linux/NetBSD, Areas Gnu
-
- ======
- Layout
- ======
-
- WARNING: Locations of files have changed from 2.4.5 to conform FSF tree.
- WARNING2: g++-include directory has moved to /lib/g++-include
-
- Gcc-2.5.6 is splited into 4 archives:
-
- gcc256-1.lha basic gcc distribution, all what you need to begin is there.
- gcc256-2.lha C++, Objective-C binaries, headers and libraries.
- gcc256-3.lha documentation in man & TexInfo formats, includes InfoView & man
- gcc256-4.lha extra binaries in /usr/bin (UN*X utilities).
-
- gcc25xto256.lha update from 2.5.x to 2.5.6, in case you already have 2.5.x.
-
- Name What Where
- ---- ---- -----
-
- COPYING GNU LICENSE, read!! All archives
- README.2.5.6 this file All archives
- NEWS_gcc-2.5.6 What's new in gcc-2.5.6 gcc256-1.lha
- NEWS_libg++-2.5.1 What's new in libg++-2.5.1 gcc256-1.lha
- Installer Commodore installer utility gcc256-1.lha
- GCC-Install Installer script to configure gcc gcc256-1.lha
- InfoView this is a viewer for .info-* files as
- you find them in info/. Please read gcc256-3.lha
- InfoView.info thru this README before trying to use gcc256-3.lha
- it, you need to setup some things for
- it to work!
- envarc/ global environment variables you should
- have set when using this programming gcc256-1.lha
- environment
- include/ non-amiga specific C/C++ headers gcc256-1.lha
- os-include/ amiga specific C/C++ headers. Add gcc256-1.lha
- Commodore headers!!
- os-lib/ amiga specific libraries gcc256-1.lha
- lib/g++-include/ C++ headers (for libg++) gcc256-2.lha
- info/ manuals for the compiler, libg++, etc. gcc256-3.lha
- ixpipe/ a pipe handler needed by the library gcc256-1.lha
- libauto/ experimental lib to open shared libs gcc256-1.lha
- at startup
- dev/ empty as for now, but needed. gcc256-1.lha
- libs/ ixemul.library and ixemul.trace gcc256-1.lha
- rexx/ ARexx wrappers for gcc and g++ gcc256-1.lha
- src-patches/ source patches gcc256-1.lha
- etc/ this is /etc, and contains a config gcc256-1.lha
- file for `man'
- lib/ normal (not base relatives) libraries gcc256-1.lha
- gcc256-2.lha
- lib/gcc-lib/ home of compilers called by gcc gcc256-1.lha
- gcc256-2.lha
- bin/ this is /bin, and contains all gcc256-1.lha
- binaries of this distribution that gcc256-2.lha
- are meant to be directly invoked by gcc256-3.lha
- the user (contrary to the executables gcc256-4.lha
- in compilers/, that are meant to be
- invoked by a driver program like gcc)
- geninline/ Perl scripts to generate inline headers gcc256-1.lha
- and -lamy glue
- man/ this is the root for tons of man pages gcc256-3.lha
-
- ==============
- Inline-Headers
- ==============
-
- Since I'm not able to redistribute amiga header files, you will have to get
- them directly from Commodore, unless you're an official registrated Amiga
- developper. In order to generate inline-headers, follow these steps (provided
- amiga headers and fd files are in os-include). You don't have to generate them
- if you use OS3.1 (40.13 headers).
-
- CLI> Assign INCLUDE: GCC:os-include
- CLI> Assign FD: INCLUDE:fd
- CLI> Makedir INCLUDE:inline
- CLI> cd USR:bin/geninline
- CLI> gen31
-
- This will create all inline-headers. If you have 2.0 headers, use gen20
- instead, if you have 3.0, use gen30, if you have 6.4, send it to me ;-)
-
- NOTE: perl scripts do not handle correctly AmigaDOS include files, which
- seems to mean they are somewhat broken. If someone could work on this...
-
- ============
- Installation
- ============
-
- 1) If this is your first installation of GCC:
-
- CLI> cd Disk_with_lot_space:
- CLI> lha x gcc256-x.lha (where x stands for 1 through 4).
-
- Now from the Workbench, invoke GCC-Install. This is what people wanted, e.g.
- an Installer based configuration script for GCC.
-
- Thus you only have to unpack archives and the installer script will do the
- rest, creating environment variables, adding assigns to user-startup, copy
- library and handler.
-
- BTW:
-
- Installer and Installer project icon
- (c) Copyright 1991-93 Commodore-Amiga, Inc. All Rights Reserved.
- Reproduced and distributed under license from Commodore.
-
-
- 2) If you "upgrade" your gcc environment from v2.x.x, well just erase
- gcc directory then go back to step 1. Too many stuff have changed. Just
- make sure you've backuped all what you've added to the GCC tree before.
-
- Note that you MUST use ixemul.library revision 45 and NOT revision 47, has
- the latter doesn't check for ENV:
-
- =====
- ARexx
- =====
-
- The provided ARexx scripts have been contributed by Loren J. Rittle.
- If you like ARexx, they're an alternate way of calling gcc. They
- automatically make sure you're using a large enough stack setting, and
- enable you to compile C++ programs with less obscure options. This
- approach is furthermore useful if you're not able to use the g++ /bin/sh
- script.
-
- ===============
- gcc versus gccv
- ===============
-
- gccv stands for a gcc using vfork() to spawn a new process, and then calling
- the new execve() function in ixemul.library to call its subcompilers. Gcc
- continues to using the more system friendly RunCommand() function in
- dos.library to start subcompilers. Gccv has the advantage of being able to
- work with interprocess pipes, thus (provided you have the memory ;-)), you're
- able to do
-
- gccv -pipe your_program.c
-
- causing the preprocessor (cpp), the C-compiler (cc1) and the assembler (as)
- to run at the same time, passing intermediate files thru internal pipes
- instead of using temporary files.
-
- As long as you don't want that feature (ok, playing with certain make tools
- also requires gccv) you're safe using gcc.
-
- ==========
- stack size
- ==========
-
- You need to have a 50.000 stack size in order to compile with GCC. This should
- be enough for most projects. Note than while recompiling gcc with itself it
- didn't take more than 71KB stack. But stack can grow due to source complexity.
- Don't be afraid of it.
-
- To use ar and/or ranlib, you should have a much larger stack, between
- 200.000 and 300.000, depending on library size.
-
- ===========
- C++ headers
- ===========
-
- Because AmigaDOS way of handling filenames, making no difference if
- file has capitals or not, you'll certainly run into problems with
- some headers, including String.h and normal string.h. My suggestion for
- now is to add to C++ "faulty" header filename an "_" in front of it, thus
- String.h would become _String.h. Sorry for inconvenience. (thanks to Dirk
- Nehring for reminding me this anoying "feature").
-